{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "48bb5b2f-d370-4073-99e8-e95914f86efe",
   "metadata": {},
   "outputs": [],
   "source": [
    "import turtle,random\n",
    "\n",
    "turtle.tracer(0)\n",
    "turtle.title('蒙特卡洛方法求圆周率')\n",
    "r = 260\n",
    "FONT = (\"楷体\",20,'normal')\n",
    "tLabel = turtle.Turtle()  # 准备画笔图下显示标签\n",
    "tLabel.hideturtle()\n",
    "tLabel.penup()\n",
    "tLabel.goto(0,-r)\n",
    "\n",
    "t = tLabel.clone()\n",
    "t.goto(r,0)\n",
    "t.pendown()\n",
    "t.left(90)\n",
    "t.circle(r,90)\n",
    "for i in range(4):\n",
    "    t.left(90)\n",
    "    t.fd(r)\n",
    "t.penup()\n",
    "\n",
    "\n",
    "count_in , total  = 0,100000\n",
    "for i in range(1,total):\n",
    "    x = r * random.random()\n",
    "    y = r * random.random()\n",
    "    t.goto(x,y)\n",
    "    if x**2 + y**2 <= r**2:\n",
    "        count_in += 1\n",
    "        t.dot(3,'red')\n",
    "    else:\n",
    "        t.dot(3,'blue')\n",
    "    pi = count_in * 4 / i\n",
    "    tLabel.clear()\n",
    "    tLabel.write(f'圆周率等于{pi:.6f}({count_in}/{i})',align = 'center',font = FONT)\n",
    "    turtle.update()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "11a78575-8cd1-47ec-8ed4-1e1c92ef6ca9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "9157\n",
      "40000\n"
     ]
    }
   ],
   "source": [
    "from PIL import Image\n",
    "import random\n",
    "\n",
    "img = Image.open('F:/python/logo.png')\n",
    "\n",
    "count = 0\n",
    "for x in range(img.width):\n",
    "    for y in range(img.height):\n",
    "        if img.getpixel((x,y))==(255,255,255):\n",
    "            count += 1\n",
    "print(count)\n",
    "print(img.width * img.height)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "4ba5a9ee-c890-401b-a95d-2accd67bca86",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "9200.0\n"
     ]
    }
   ],
   "source": [
    "img = Image.open('F:/python/logo.png')\n",
    "total = 1000\n",
    "in_count = 0\n",
    "for i in range(total):\n",
    "    x = random.randint(0,img.width-1)\n",
    "    y = random.randint(0,img.height-1)\n",
    "    if img.getpixel((x,y))==(255,255,255):\n",
    "            in_count += 1\n",
    "s = img.width*img.height * in_count / total\n",
    "print(s)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "9a191f9d-ff6e-4758-985e-467cc9552d34",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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t956C0ajUe1duanxOFcPHufqw2NdPXicq8f1cJxviA6sREREdPPSdGWEiIiI1McwQkRERKpiGCEiIiJVMYwQERGRqjQbRmbNmoXo6Gj4+/sjNjYWGzZsUHuXrltJSUno3LkzgoODUa9ePdx33304dOiQbBtBEPD222+jQYMGCAgIwO233459+/bJtikqKsLzzz+PsLAwBAUF4Z577sHp06dl21y4cAHDhw9HaGgoQkNDMXz4cFy8eLGqX+J1KSkpCTqdDomJieJtPM7ek5mZicceewx16tRBYGAgOnTogJSUFPHnPNaVV1paitdffx3R0dEICAhA06ZNMXXqVJjNZnEbHmfPrF+/HnfffTcaNGgAnU6HX3/9Vfbz6jyu6enpuPvuuxEUFISwsDCMHz8excXF7r0gQYMWLVok+Pr6Cl9++aWwf/9+YcKECUJQUJBw6tQptXftujRgwADhq6++Evbu3SukpaUJgwcPFho3bixcunRJ3Gb69OlCcHCw8PPPPwt79uwRhg0bJtSvX18oKCgQtxk7dqzQsGFDITk5Wdi1a5fQp08foX379kJpaam4zZ133inExMQImzdvFjZv3izExMQId911V7W+3uvB9u3bhSZNmgjt2rUTJkyYIN7O4+wd58+fF6KiooTHH39c2LZtm3DixAlh1apVwtGjR8VteKwrb9q0aUKdOnWE33//XThx4oSwZMkSoUaNGsLMmTPFbXicPbN8+XJhypQpws8//ywAEH755RfZz6vruJaWlgoxMTFCnz59hF27dgnJyclCgwYNhHHjxrn1ejQZRrp06SKMHTtWdlurVq2EV199VaU9urHk5OQIAIR169YJgiAIZrNZiIiIEKZPny5uc+3aNSE0NFT4/PPPBUEQhIsXLwq+vr7CokWLxG0yMzMFvV4vrFixQhAEQdi/f78AQNi6dau4zZYtWwQAwsGDB6vjpV0XCgsLhRYtWgjJycnCbbfdJoYRHmfveeWVV4RevXrZ/TmPtXcMHjxYeOKJJ2S3DRkyRHjssccEQeBx9hbrMFKdx3X58uWCXq8XMjMzxW1++OEHwWg0Cvn5+S6/Bs010xQXFyMlJQUJCQmy2xMSErB582aV9urGkp+fDwCoXbs2AODEiRPIzs6WHVOj0YjbbrtNPKYpKSkoKSmRbdOgQQPExMSI22zZsgWhoaHo2rWruE23bt0QGhqqqd/Nc889h8GDB6N///6y23mcvWfZsmWIi4vDgw8+iHr16qFjx4748ssvxZ/zWHtHr1698Pfff+Pw4cMAgN27d2Pjxo0YNGgQAB7nqlKdx3XLli2IiYlBgwYNxG0GDBiAoqIiWbOnMzfEQnnelJubC5PJhPDwcNnt4eHhyM7OVmmvbhyCIGDixIno1asXYmJiAEA8bkrH9NSpU+I2fn5+qFWrls02lvtnZ2ejXr16Ns9Zr149zfxuFi1ahF27dmHHjh02P+Nx9p7jx49j9uzZmDhxIl577TVs374d48ePh9FoxIgRI3isveSVV15Bfn4+WrVqBYPBAJPJhHfffRcPP/wwAP5NV5XqPK7Z2dk2z1OrVi34+fm5dew1F0YsdDqd7P+CINjcRrbGjRuHf/75Bxs3brT5mSfH1Hobpe218rvJyMjAhAkTsHLlSvj7+9vdjse58sxmM+Li4vDee+8BADp27Ih9+/Zh9uzZGDFihLgdj3XlLF68GN999x2+//57tG3bFmlpaUhMTESDBg0wcuRIcTse56pRXcfVG8dec800YWFhMBgMNoktJyfHJt2R3PPPP49ly5ZhzZo1aNSokXh7REQEADg8phERESguLsaFCxccbnP27Fmb5z137pwmfjcpKSnIyclBbGwsfHx84OPjg3Xr1uGTTz6Bj4+PeAx4nCuvfv36aNOmjey21q1bIz09HQD/pr1l0qRJePXVV/HQQw/h1ltvxfDhw/HCCy8gKSkJAI9zVanO4xoREWHzPBcuXEBJSYlbx15zYcTPzw+xsbFITk6W3Z6cnIwePXqotFfXN0EQMG7cOCxduhSrV69GdHS07OfR0dGIiIiQHdPi4mKsW7dOPKaxsbHw9fWVbZOVlYW9e/eK23Tv3h35+fnYvn27uM22bduQn5+vid9Nv379sGfPHqSlpYlfcXFxePTRR5GWloamTZvyOHtJz549bYanHz58GFFRUQD4N+0tV65cgV4vP80YDAZxaC+Pc9WozuPavXt37N27F1lZWeI2K1euhNFoRGxsrOs77XJX15uIZWjvvHnzhP379wuJiYlCUFCQcPLkSbV37br0zDPPCKGhocLatWuFrKws8evKlSviNtOnTxdCQ0OFpUuXCnv27BEefvhhxWFkjRo1ElatWiXs2rVL6Nu3r+Iwsnbt2glbtmwRtmzZItx666039fA8Z6SjaQSBx9lbtm/fLvj4+AjvvvuucOTIEWHhwoVCYGCg8N1334nb8FhX3siRI4WGDRuKQ3uXLl0qhIWFCS+//LK4DY+zZwoLC4XU1FQhNTVVACDMmDFDSE1NFaeoqK7jahna269fP2HXrl3CqlWrhEaNGnFor6s+++wzISoqSvDz8xM6deokDlMlWwAUv7766itxG7PZLLz11ltCRESEYDQahd69ewt79uyRPc7Vq1eFcePGCbVr1xYCAgKEu+66S0hPT5dtk5eXJzz66KNCcHCwEBwcLDz66KPChQsXquFVXp+swwiPs/f873//E2JiYgSj0Si0atVKmDNnjuznPNaVV1BQIEyYMEFo3Lix4O/vLzRt2lSYMmWKUFRUJG7D4+yZNWvWKH4ujxw5UhCE6j2up06dEgYPHiwEBAQItWvXFsaNGydcu3bNrdejEwRBcL2OQkRERORdmuszQkRERNcXhhEiIiJSFcMIERERqYphhIiIiFTFMEJERESqYhghIiIiVTGMEBERkaoYRoiIiEhVDCNERESkKoYRIiIiUhXDCBEREamKYYSIiIhU9f/52AQAn1aX5gAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import random\n",
    "def doss():\n",
    "    return random.randint(0,1) #0为上\n",
    "indices = [] #存储抛硬币次数\n",
    "freq = [] # 储存硬币朝上的次数\n",
    "for toss_num in range(10,10001,10):\n",
    "    heads = 0 # 朝上的次数\n",
    "    for i in range(toss_num):\n",
    "        if doss() == 0:\n",
    "            heads += 1\n",
    "    freq.append(heads/toss_num)\n",
    "    indices.append(toss_num)\n",
    "plt.plot(indices,freq)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "deb8b25e-9715-4dcd-93b0-bfeb040103e6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['1', '1', '0', '1', '0', '0', '1', '1', '1', '1']\n",
      "本次最多连续次数有: 4 次\n",
      "['0', '0', '1', '1', '0', '1', '1', '0', '0', '1']\n",
      "本次最多连续次数有: 2 次\n",
      "['0', '0', '1', '0', '0', '1', '0', '1', '0', '0']\n",
      "本次最多连续次数有: 2 次\n",
      "['1', '1', '1', '0', '0', '1', '1', '0', '0', '1']\n",
      "本次最多连续次数有: 3 次\n",
      "['1', '1', '0', '0', '1', '0', '0', '0', '1', '0']\n",
      "本次最多连续次数有: 3 次\n",
      "['0', '1', '1', '1', '0', '0', '0', '1', '0', '0']\n",
      "本次最多连续次数有: 3 次\n",
      "['1', '0', '0', '1', '1', '1', '0', '1', '1', '1']\n",
      "本次最多连续次数有: 3 次\n",
      "['1', '0', '0', '1', '1', '0', '1', '1', '1', '0']\n",
      "本次最多连续次数有: 3 次\n",
      "['0', '1', '1', '1', '0', '0', '0', '0', '1', '0']\n",
      "本次最多连续次数有: 4 次\n",
      "['0', '0', '1', '0', '0', '1', '0', '1', '0', '1']\n",
      "本次最多连续次数有: 2 次\n",
      "上轮里面最多连续次数： 4 次\n"
     ]
    },
    {
     "data": {
      "image/png": "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//771aJFC02dOrXciwQAAChNmefU+Pj46JZbblGLFi1UUFCgb775Ru3bt1eDBg30+eefM0kYAAB4hUdXalwuV6Gw0q1bN/3888/Kzs5WXl6e5s2bpwcffLDCigQAAChNqaHmyJEjuvnmmzV8+HC5XC5J0qxZs+R0OnX48GF9//33GjFihHbv3q2///3vFV0vAADARZV6+yk4OFiTJk3SmjVrlJWVpSFDhqhOnTq6/vrr1aNHD73++uv6+eeftWrVKj322GMen3jJkiVq2rSpfH191b59eyUnJ5c6pkePHrLZbO6tc+fOHp8PAABYW6mhJjAwUH379tUnn3yiAwcOyNfXV9dee62++eYbd5+6devqq6++0pYtW/T666+XetKUlBT1799fU6ZM0eHDh9W4cWMNGDCg1HGbN2/Wtm3blJ6ervT0dC1ZsqTUMQAA4I+hTBOFw8LCNGzYMC1btkzXXnutVq1apaysLElS9erVNW/ePI0dO1YHDx4s8TjJycmaNGmS7r//foWFhWnQoEFKTEwsccyhQ4dkjFGbNm0UEhKikJAQBQYGlqV8AABgYR6HGpfLpREjRqht27Zq1KiR6tWrp4kTJ6pFixb68MMPJUnXX3+93nvvvSJvGf5f3bt318CBA937u3btUmRkZIljNm7cKJfLpYYNGyowMFB9+vRRenp6sf2dTqccDkehDQAAWJdHoSYtLU233367fvjhB23cuFGhoaGqUqWKvvvuO82dO1fTpk3TzTffrC1btqhv376y2WweF5CXl6fp06dr8ODBJfbbvXu3oqOjtXz5ciUmJio1NVVjxowptv/kyZMVHBzs3sLDwz2uCQAAXHk8CjX+/v66+eab9eOPP+rqq68u9FlsbKwSExP15z//WbfddpsOHTpUpgLGjh2r6tWr66mnniqx3+jRo7Vs2TK1bt1aLVu21NSpU7V48eJi+8fFxSkjI8O9lXZLDAAAXNk8ek9NcHCwJk+eXOznPj4+evnll/X000+rQYMGHp98xYoVeuedd7R+/Xr5+fl5PE6SQkJCdPLkSTmdTtnt9iKf2+32i7YDAABruuRVui8mLCxM77zzjkd99+7dq379+mn27Nlq1apVqf179+6t9evXu/c3bdqkq666iuACAAAklSHUXH311crLyyuxj4+PT4lXdC7IyclR9+7d1atXL919993KyspSVlaWjDFyOBw6d+5ckTFRUVEaPny4NmzYoK+++krjxo0rdR4OAAD44/B4QcuCggL5+/srNjZWu3btUpUqRfOQMcajtZ+WL1+u5ORkJScn691333W379u3T506dVJ8fLx69epVaExcXJz279+vLl26qG7duho0aJDi4uI8LR8AAFicx1dqLoSY06dPa8OGDZKkdevWyW63u//87e2hkvTq1UvGmCJbRESEUlNTiwQaSfLz81NCQoIcDof27Nmj8ePHy9e3TIuMAwAACys1FbhcLk2cOFGZmZlasWKFsrOzFRYWJl9fX4WFhcnPz6/Qn8aYyqgbAACgkFJDzdmzZ/Xdd9/J4XBo4MCBPBoNAAAuS6XefgoKCtKaNWvUoEEDpaSk6E9/+lMllAUAAFA2Hk9KuXBbqaCgQPXr11daWprq16+vkydPFvozICCgwooFAAAojsehJigoSPn5+fr000/lcrku+vRTQUGBOnbsWK4FAgAAeKLUUJOfn6+bbrpJI0aMUJUqVdSoUaMS+959993lWiAAAIAnSg01TqdT99xzjyZPnqxRo0YpNDS02L7nzp2T0+nUG2+8Ua5FAgAAlKbUUBMYGKi4uDjFxcVp8eLFGjNmjLKysjR16lRFRUUV6utyuZSTk1NhxQIAABSnTG+v6927t3r06KG4uDhNmDBBSUlJqlGjRkXVBgAA4LEyL2hpt9s1c+ZMbdu2jUADAAAuG5e8SndgYGB51gEAAPC7eHT7qVatWqpRo0api1VWqVJF999/vyZNmlQuxQEAAHjKo1Bz5swZLV26VP7+/iX2++KLLzRr1ixCDQAAqHQehRqbzabo6GgZY9SqVSulpKRc/GC+vgoICJAxRjabrVwLBQAAKIlHoebCEgl2u929oOWdd96pM2fOKC8vT1lZWdq9e7euu+46XXfddRVXLQAAQDHK9Ej3b6WkpOjf//63CgoK9Oc//7k8awIAACizSw41ktwv3yttAjEAAEBFu+RHugEAAC4nl3ylxhijRo0ayRij9PT08qwJAACgzMoUanJzc+VyuSRJy5Ytk81mkzFGubm5FVIcAACApzx+pNtmsykgIEB79+6VJDVv3rxCCwMAACgLjx/pvvrqqz1+98yF4AMAAFBZPAo1X331lfz8/FSlSsnzivPz83XmzJnyqAsAAKBMPAo1d911V0XXAQAA8Lt4FGq+/vpr+fn5yd/fv9hbUAUFBTp37pzy8vLUrVu3ci0SAACgNB6Fml69eumGG25wL5eQlJTkXg5hy5Ytuv76690/R0dHE2oAAECl8yjUBAcH67///a97v3nz5lq3bp0kqU6dOoV+/m0/AACAyuLRG4X/95bTb/eL+xkAAKAysUwCAACwBI9uPxUUFOjgwYPuOTX5+fk6ePCgCgoK3J/99ueGDRty1QYAAFQqj0JNXl6e2rZtKz8/P/fSCO3atZPNZpOfn5/atWsnSapSpYqioqKUnJysq666qkILBwAA+C2PQo3D4ZAkffbZZ9q5c6fi4uIkSQsWLNCxY8c0atSoiqsQAADAA2WaU5OcnKxVq1ZJkl5//XVNnjxZd955Z0XUBQAAUCYeXanp27evAgICtG3bNh0/flyPP/64UlJS1Lx5c73++uvufgUFBXI6nXr77bdVs2bNEo+5ZMkSDR8+XAcOHFB0dLTmzZunli1bljhm9erVGjhwoNLS0jRmzBiNGDHCk/IBAMAfgEdXatq0aaPWrVsrLCxMTqdT33//vdasWaO1a9eqdu3aat26tXtr1aqV/Pz8SjxeSkqK+vfvrylTpujw4cNq3LixBgwYUOKYtLQ09ezZU3379tW6deu0cOFCrVy50vNvCgAALM2jKzUvvviiJCk7O1v5+flavny5fvnlF82ePVsJCQkaNGiQXnrpJfn6enQ4JScna9KkSbr//vslSYMGDSr1NtbChQtVr149jRs3TjabTePHj1dCQoJuv/12j84JAACsrUxzatq0aaNOnTpJklq3bq0333xTP//8s44fP65jx455fJzu3btr4MCB7v1du3YpMjKyxDFJSUm644473I+Kt2vXTlu2bCm2v9PplMPhKLQBAADr8uzSyv/v3nvvLdLWsGFDvffee5dcQF5enqZPn67hw4eX2M/hcKhVq1bu/aCgIB0+fLjY/pMnT9ZLL710yXX9UUSMXurtEopInVL62mFXat0AUF7492BRHl2pyc3NvWh7fn6+++clS5aoXbt2WrJkSZkKGDt2rKpXr66nnnqqxH6+vr6y2+3u/YCAAGVnZxfbPy4uThkZGe7t4MGDZaoLAABcWTy6UhMYGCi73e5+o/CFF/DZbDb9/PPPioyM1LXXXqvHHntMAwYM0N133+3RyVesWKF33nlH69evL3Vyca1atZSWlubez8zMlL+/f7H97XZ7oRAEAACszaMrNU2bNlV2drZycnKUk5Pj/jk7O1tBQUE6ffq0QkJCdNdddyknJ8ejE+/du1f9+vXT7NmzC91WKk5MTIzWr1/v3t+6dasaNGjg0bkAAID1eXSl5sLk3HXr1unrr79WRESEmjRpoiZNmqhTp07KzMx0X7np2LFjqcfLyclR9+7d1atXL919993KysqSdP6KUGZmpqpWrVrkyk3Pnj01ZMgQrVy5UrfeequmT5+u2NjYsn5fAABgUWWaKOx0OnX8+HEdOXJEK1as0O7du2WM0eDBg/W3v/1NQUFBHh1n+fLlSk5OVnJyst599113+759+9SpUyfFx8erV69ehcaEhoZqxowZio2NVXBwsAIDA5WQkFCW8gEAgIWVKdR06tTJ/Uj3BcePH9dbb72ltm3bauHCherQoUOpx+nVq5d7fs7/Sk1NLXbc4MGD1bVrVyUnJ6tjx44ehygAAGB9HoWaffv2qX79+oXaLtxu+vrrr/Xyyy/rr3/9q+699159+eWXHs2RuVSRkZGlvtMGAAD88XgUavbu3SuHw6GGDRu62woKCpSTk6M6dero2LFjat26taZOnarHHntMGzZscM/DAQAAqAwehZo6deqodevW7rfy5uTkKCYmRtu3b5ckvfDCC7rtttv0xBNPaPny5crNzVXVqlUrrmoAAID/4VGoCQgIkM1m05o1a2SMkcvl0oEDB9z79evX14oVK/TEE08UmvgLAABQWTyeKJybm6vJkye7J/jm5eVp0qRJ7s83bNggp9PJC+8AAIBXeBRq8vPzVbVqVX399deSzj/aXbduXS1btszd57rrrtPixYvVr1+/iqkUAACgBB69Udjlcmn8+PHufR8fH82cObNQn7/+9a/FPqYNAABQ0Ty6UmO32zVixIj/N8jXV0888UShPr8NPQAAAJXNoys1AAAAlzuPJwr//PPP2rhxo6pUOZ+DLqzQ/fHHH8vHx8fdLy8vT8eOHSv/SgEAAErgcag5evSoVq5c6Q41y5cv108//aRBgwbJx8dHxhi1b99eGzdurLBiAQAAiuNxqImNjS20KnadOnXUoEGDQn18fHzUrFmz8qsOAADAQ5c8p4ZlEAAAwOXEoys1O3fuVNWqVd1BxhijgoICHTx40P0Y94U2AAAAb/Ao1HTo0KHIWk7p6elq165dobYzZ86UW2EAAABl4VGouVhYqVOnjo4ePVqkDQAAwBvKdU4N82wAAIC38PI9AABgCR4/0v1///d/mjZtmvz8/GSMkTFGiYmJOnXqlGw2m4wxOnfuXEXWCgAAUCyPQ02fPn3UuXNn99uDCwoKtHDhQq1du9Z926lVq1YVUyUAAEApPA41devWVd26dQu1TZw4sdwLAgAAuBTlPqfG6XSW9yEBAABK5XGouemmmyRJw4YN0+eff67c3Fz3ZxeWRti4caOio6PLuUQAAIDSeXz7yeFwSJKWLl2qnTt3ys/PT926dZMkBQQESJJGjx6tRx55pALKBAAAKJnHocbf31+SFBISoo8//ljVqlVzf2a327VlyxYdOXJEI0eOLP8qAQAASuHR7ad+/frpwIEDevzxx3X27FmNHz9edrtdISEhCg8P165du7RhwwatXbvW/XQUAABAZfIo1Nx4442qUaOG/vznP8vPz08zZ87U/PnzdejQIW3YsEHh4eH6+OOP9eyzz1Z0vQAAABflUah55plnFBISon79+snX11dffPGFJkyYoF27dumbb75RQECAli9frn379umzzz6r6JoBAACK8PjppwuLWmZmZspms2nevHl69NFH3W3+/v7629/+pqlTp1ZIoQAAACXxeKLw+++/r/z8fM2YMUM9evSQJM2YMUOxsbFKT0+XJN12220aOnSoHA6HgoKCKqZiAACAi/A41HTq1EkvvviiTpw4ofbt26tu3bqKjY1VXFycJk+erLlz5yooKEibNm0i0AAAgErn0e2n+Ph47dq1S08++aQiIyPVtm1bTZo0SU6nU8uWLVNOTo7sdrtWrlypevXqVXTNAAAARXgUao4cOaLo6Gi98sor6t27t+rWrauzZ8+qdevWysjIUHJyspo3b67169dXdL0AAAAX5VGoee2117R3715FREQoJiZGO3fu1IgRI7RgwQKdPHlSe/bsUXh4uJKSkpSZmenxyU+dOqUmTZooNTXVo/49evSQzWZzb507d/b4XAAAwNrKtEr3uHHj9PDDD2vevHny9/fXjTfeqP3796tWrVoqKCjQZ599pjNnzqhGjRqlHu/kyZPq0aOHx4FGkjZv3qxt27apYcOGkiQ/Pz+PxwIAAGvz+JHuIUOGKDc3VxERERo3bpySkpIkSffcc4/OnTunKlWqKCoqSk2aNPHoeH369FGfPn08LvTQoUMyxqhNmzYKCQlRSEiIAgMDPR4PAACszeNQs3z5cveVEWOM+vXrJ+n8fJsL7YGBgSooKPDoeHPmzNFzzz3ncaEbN26Uy+VSw4YNFRgYqD59+rgfJb8Yp9Mph8NRaAMAANblcaix2WzudZ18fX0veusnICBAVap4dsimTZt6empJ0u7duxUdHa3ly5crMTFRqampGjNmTLH9J0+erODgYPcWHh5epvMBAIAri8dzaiRp7969WrVqlXx8fJSVlaX58+e7/3S5XKpVq5bHoaasRo8erdGjR7v3p06dqt69e2v27NkX7R8XF6cRI0a49x0OB8EGAAALKzXUrFq1StnZ2bLZbEpLS9MPP/wgX19fOZ1OrVmzRjk5OVq9erUKCgrUsmVL2e32yqhbISEhOnnypJxO50XPabfbK60WAADgfaVeVjl06JCeffZZpaSk6MSJE3r//ff13nvvqU6dOnr33XdVp04dJSQk6P3339eTTz5ZYW8T7t27d6H34GzatElXXXUVwQUAAEjyINQ89NBD2rNnjxo3bqxp06YpMjJSs2bNksvlkqRCE4OPHTvmftz6UjkcDp07d65Ie1RUlIYPH64NGzboq6++0rhx4zR48ODfdS4AAGAdHk2Asdlsks7filq8eLE++eQTnT17VpKUn58vY4yk81dP2rZt+7sKioqK0tKlS4u0x8XFqVWrVurSpYuGDRumQYMGKS4u7nedCwAAWIfHE4Wjo6OVl5entm3bauXKlTp9+rQk6YYbbpDL5ZKvr68WLFhQ5qBxIRBdUNzL+Pz8/JSQkKCEhIQyHR8AAPwxeBxqxo4dq1GjRun//u//5Ofnp3fffVf+/v5q3769Zs6cqWPHjik7O1t33HFHRdYLAABwUaXefjp37pxeeOEF3XLLLapWrZp7bafXXntNycnJ7u3YsWM6depUiS/EAwAAqCilXqnx8/NTfn6+EhMT1aJFC0lSbm6ugoKC9P777xfq+8ILL+i+++7Td999VzHVAgAAFMOj208zZswotG+327V27doi/SZPnqz9+/eXT2UAAABlcEmv/7XZbIqIiCh6sCpVPF7QEgAAoDxVzJoGAAAAlYxQAwAALIFQAwAALIFQAwAALIFQAwAALIFQAwAALIFQAwAALIFQAwAALIFQAwAALIFQAwAALIFQAwAALIFQAwAALIFQAwAA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TSY4ONicPn3a/dmcOXNMQECAadq0qQkNDTV16tQxbdu2NadPnzZhYWHGmPO3taKiosxDDz1UpLZvv/3WdOnSpVBb27ZtzcSJEy/pu15zzTUmLy+vSHtCQoKpX7++qVevnqlatapp3LixCQ8PNw0aNHDfhqpVq5YJCgoyderUMfPmzTMFBQUmPDzchIWFmauvvtpIMldffbWZO3euGTp0qJk9e7bJy8szEydONFWrVjU7duwosTZPbz/l5eWZ6667zvzyyy/utlmzZpnIyMgSx33yyScXnbsE/FHx9BNgEQUFBbrxxht16tQppaenKyQkRNL5J6OeffZZXXPNNVqwYIGWLVumFi1aaP78+ZKkiIgISdKXX37pPlbbtm118OBBPf300xoxYoRq1qzp/uzxxx/X2bNnlZKSoiFDhmjo0KHasmWLbDabcnNz9dRTT+mee+7RwIEDNXfu3CJ1TpgwQZ07d3bvnzp1Sjt27NAXX3xxSd87MjLyoo9rP/744zp8+LD++c9/6p577lFqaqpuv/12TZkyRfv371dqaqqef/55TZgwQSdOnNCjjz4qm82mlJQUHTt2TLt27ZKPj4927dql/v37y2azacWKFfrTn/6kbdu2afPmzWrZsuUl1fy/5s6dq4KCAl199dXutpUrVyo1NVU7duwodtzevXvVuHHjcqkBsAJCDWARP/30k9LS0lS7dm3t3r270F+Qb7zxhnbu3KmHHnpIw4YN065du/TII4/IGKPhw4drwoQJ2rx5s3tuio+Pj9q2bavTp08XebQ4Pz9fR48e1datW7V//35t3rxZkyZN0pEjR3Tu3Dl17dpVO3fu1KBBg+Tn51do7CeffKLTp09r+PDh7rbp06drwIABqlatmhYuXFjm7/3QQw9p5syZxX5+5swZ91yYxx9/XE899ZQ70OXk5BR55DorK0u7d+/WunXrZIzRW2+95a7LZrNp6dKlWrRoUbkFmoyMDL3yyit688035et7fprjjh07tGHDBs2aNUsjRowo9sWBX375pe66665yqQOwAkINYBFffvml7rvvPp0+fVrJyclq06ZNqWNGjRoll8ulcePG6bXXXtO0adNkjNGLL76ow4cP6+zZs+6rIF988YUKCgo0depUde3aVS+//LJ27typgoICRUVFqXbt2qpRo4Z69+4tHx8fSSr0VtyjR4/qmWeeUXx8vDvsfPbZZ5o/f75efPFFvfHGG3ruuee0ePHiMn3v++67TydOnLjoVSFJOnbsmDvUdOzYUfPnz9ef/vQnSedDjd1ud0/kPXv2rKKiovTkk09q7ty5stlsCgoKUtu2bSVJnTt3dl/ZKigoUEZGRplqvZhnn31Wt9xyi2677TZ3vffdd59eeeUVDRw4UHl5eXrkkUcKTTaWzr/8sGrVqmrWrNnvrgGwDC/f/gJQDlwul2natKlZv369GTNmjHnooYdMQUGBeeedd0z//v3d/YYMGeJ+XPjNN980ISEh7vetuFwus3v3btOzZ09z/fXXm5MnT5olS5aY2rVrmylTphi73W6OHz9e6Lx///vfzUsvvWSMMebMmTMmKCjI5Ofnuz/v2bOne5LxkCFDTPfu3Y0xxuTm5ppx48aZ2rVrm40bN7r7f/fdd6Zq1armueeec78zxxMHDhww11xzjXn77beLfDZjxgzTrFmzi26BgYEmLCzM9OrV66LHrVKlivvnYcOGmWnTprn3t2zZYmrXrl1ovtH/euaZZy46r+iCDRs2mMDAQHPgwAFjzPlHxxs1amTGjBnj7pORkWFuuOEGEx0dbRITE40xxpw+fdq0adPG/Ug+gPMINYAFrFixwgQHB5uUlBRTu3Zt8+uvv5rJkyebiIgIs3z5cuNyucwDDzxgatas6X7qJisry6xbt67QcX788Udz3333mYyMDHfbl19+aUJDQ82wYcOKnHf06NHmxRdfNMacD0VRUVGmbt267pfW1a9f3+zevdsYY4zT6TRHjx41TqfTtGnTxsTExJg9e/YUOebGjRtNZGRkkQnNpUlLSzPffvutR30PHTpk5s+fbyIiIszWrVsv2ic3N9dIMufOnTPGGPPhhx+awMBAdyAKDg42w4cPL/E8AwYMML179y6xz4X39EyaNMkEBwebBQsWFOnjcDjMQw89ZOrWrWuOHz9u4uLizNy5cz35qsAfis2YYlalA3BFOXDggBo1aqTjx48rLCxMBQUFqlLl/91h/uabb1S3bl1df/31ZT62y+Vy31IqD6mpqWrUqFGh+n4rJydH+fn5qlGjRrmd87cyMjL0wAMP6O6779agQYMq5BxldfbsWWVlZSksLKzYPidOnFDdunXL/Z8HYBWEGgAAYAlMFAYAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJZAqAEAAJbw/wFyxZuV4wsB3QAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 做10次，做十轮，每一轮里面的最高值体现出来，并用柱状图展现出来，X轴用以展示次数，y轴用以展示最高值\n",
    "import matplotlib.pyplot as plt\n",
    "import random\n",
    "indices = [] # 每一轮抛硬币序列值\n",
    "indicesX = [] # 柱状图X轴数据：轮次\n",
    "indicesY = [] # 柱状图Y轴数据，每一轮终于打连续次数\n",
    "def doss():\n",
    "    return random.randint(0,1) #0为上\n",
    "Zmax = 1\n",
    "j = 0\n",
    "toss_num = 0\n",
    "for j in range(10):\n",
    "    indicesX.append(j+1)\n",
    "    indices = []\n",
    "    for toss_num in range(10):\n",
    "        if doss() == 0:\n",
    "            indices.append(\"0\")\n",
    "        else:\n",
    "            indices.append(\"1\")\n",
    "        max1 = 1\n",
    "        max2 = 1\n",
    "    for i in range(len(indices)-1):\n",
    "        if indices[i+1] == indices[i]:\n",
    "            max1 += 1\n",
    "            if max1 > max2:\n",
    "                max2 = max1\n",
    "        else:\n",
    "            max1 = 1\n",
    "    indicesY.append(max2)\n",
    "    if max2 > Zmax:\n",
    "        Zmax = max2\n",
    "    print(indices)\n",
    "    print(\"本次最多连续次数有:\",max2,\"次\")\n",
    "print(\"上轮里面最多连续次数：\",Zmax,'次')\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.bar(indicesX,indicesY)\n",
    "plt.xlabel(\"游戏轮次（每轮十次)\")\n",
    "plt.ylabel('连续出现相同值次数')\n",
    "plt.show()\n",
    "                \n",
    "        \n",
    "        \n",
    "        \n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "fac9bf85-9ce5-4b40-8058-45eeea5984c8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.1706\n"
     ]
    }
   ],
   "source": [
    "# 初始十块钱\n",
    "# 如果是7就是赚4块钱，不是7就是丢掉1块钱\n",
    "from random import *\n",
    "count = 0\n",
    "total = 10000\n",
    "for i in range(total):\n",
    "    num1 = randint(1,6)\n",
    "    num2 = randint(1,6)\n",
    "    if num1 + num2 == 7:\n",
    "        count += 1\n",
    "print(count / total)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "ef834832-d109-41dd-940e-dfa564d0565a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "一共玩了73次，最多的时候有24钱\n"
     ]
    }
   ],
   "source": [
    "from random import *\n",
    "start = 10\n",
    "max = start\n",
    "i= 0\n",
    "while start>0:\n",
    "    i += 1\n",
    "    num1 = randint(1,6)\n",
    "    num2 = randint(1,6)\n",
    "    if num1 + num2 == 7:\n",
    "        start +=6\n",
    "        if start>max:\n",
    "            max = start\n",
    "    else:\n",
    "        start -= 1\n",
    "    # print(start,end=' ')\n",
    "print(\"\\n一共玩了{}次，最多的时候有{}钱\".format(i,max))\n",
    "\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c20936af-b02f-4e03-a77c-e2ca4f9f05ac",
   "metadata": {},
   "outputs": [],
   "source": [
    "import wordcloud\n",
    "import string\n",
    "import random\n",
    "lstChar = [x for x in string.ascii_uppercase]\n",
    "print(lstChar)\n",
    "lstfreq = [random.randint(1,100) for i in range(26)]\n",
    "print(lstfreq)\n",
    "freq = {x[0]:x[1] for x in zip(lstChar,lstfreq)}\n",
    "print(freq)\n",
    "wcloud = wordcloud.WordCloud(\n",
    "    background_color = \"white\",width = 850,\n",
    "    max_words = 50,\n",
    "    height = 860,margin = 1).fit_words(freq)\n",
    "wcloud.to_file(\"d:/1111.png\")\n",
    "print(\"finish\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
